Di Ruby, Input/Keluaran bukan sekadar serangkaian perintah; ini adalah arsitektur yang canggih arsitektur berbasis aliran. Di jantung sistem ini terdapat kelas IO kelas, yang berfungsi sebagai saluran dua arah antara program Anda dan dunia luar. Baik Anda berinteraksi dengan file, soket jaringan, atau terminal pengguna, Ruby memperlakukannya sebagai aliran umum.
1. Jembatan Dua Arah
Sebuah IO objek adalah abstraksi yang terpadu. Sementara sistem operasi melihat pencatat file untuk membaca dan menulis (seperti pada pipa), Ruby mengemasnya menjadi satu objek tunggal. Ini memungkinkan aliran data yang mulus dalam kedua arah.
2. Kernel & Filter Standar
Modul Kernel memberikan metode seperti gets dan print. Secara esensial ini adalah filter yang mendelegasikan ke konstanta global STDIN dan STDOUT. Ini berarti kode Anda dapat dialihkan pada tingkat sistem operasi untuk memproses file atau aliran jaringan tanpa mengubah satu baris pun dari logika.
$$\text{Aliran} \rightarrow \text{Buffer} \rightarrow \text{Interpreter Ruby}$$